#pragma once

class PDFTemplates
{
private:
	static void makeT_PageSinglePhoto(PDFPage& page, const wstring& imgFile, HPDF_PAGESIZES size, bool optimize=false);
public:
	static void T_PageSinglePhotoWallet(PDFPage& page, const wstring& imgFile, bool optimize=false);
	static void T_PageSinglePhoto3_5x5(PDFPage& page, const wstring& imgFile, bool optimize=false);
	static void T_PageSinglePhoto4x6(PDFPage& page, const wstring& imgFile, bool optimize=false);
	static void T_PageSinglePhoto5x7(PDFPage& page, const wstring& imgFile, bool optimize=false);
	static void T_PageSinglePhoto8x10(PDFPage& page, const wstring& imgFile, bool optimize=false);
	static void T_PageSinglePhoto9x12(PDFPage& page, const wstring& imgFile, bool optimize=false);

	static void T_320x464PageTwice8x10(PDFPage& page, bool picBorders, const wstring& imgFile1, const wstring& imgFile2 = L"", bool optimize=false);
	static void T_320x464PageQuad4x6(PDFPage& page, bool picBorders, bool isLandscape, const wstring& imgFile1, const wstring& imgFile2 = L"", 
		const wstring& imgFile3 = L"", const wstring& imgFile4 = L"", bool optimize=false);
	// retPDFFile - the returned PDFFile, rows - how many rows, cols - how many columns, isLandscape - portrait/landscape,
	// pageSize - the size of the page from enum HPDF_PAGESIZES, picBorders - has borders?, listFiles - the paths to the jpg files,
	// margins (optional... default 28) - width/height of margins around the page, gapPics (optional... default 56) - the gap between images
	static void T_DynamicTemplate(PDFFile& retPDFFile, int rows, int cols, bool isLandscape, HPDF_PAGESIZES pageSize, 
									 bool picBorders, const list<wstring>& listFiles, bool optimize, 
									 HPDF_REAL margins = 28, HPDF_REAL gapPics = 56);
};
